// 用户状态管理模块
const state = {
    userInfo: null // 存储用户信息对象
  };
  
  const mutations = {
    // 设置用户信息
    SET_USER_INFO(state, userInfo) {
      state.userInfo = userInfo;
    },
    // 清除用户信息（用于退出登录）
    CLEAR_USER_INFO(state) {
      state.userInfo = null;
    },
    UPDATE_USER_INFO(state, payload) {
        state.userInfo = { ...state.userInfo, ...payload };
      },
    UPDATE_AVATAR(state, avatarUrl) {
        if (state.userInfo) {
          state.userInfo.avatar = avatarUrl;
        }
      },
       // 退出登录
    LOGOUT(state) {
      state.userInfo = null;
      localStorage.removeItem('token');
    }
  
  };
  
  const actions = {
    // 登录操作
    async login({ commit }, credentials) {
      try {
        const response = await axios.post('/api/login', credentials);
        if (response.data.code === 200) {
          commit('SET_USER_INFO', response.data.user); // 提交用户信息
          return true; // 登录成功
        }
      } catch (error) {
        console.error('登录失败:', error);
        throw error; // 抛出错误供组件处理
      }
    },
    // 退出登录
    logout({ commit }) {
      commit('CLEAR_USER_INFO');
      localStorage.removeItem('token'); // 清除本地存储的Token（如果存在）
    }
  };
  
  const getters = {
    // 获取当前用户ID
    userId: (state) => state.userInfo?.id || null,
    // 获取当前用户完整信息
    currentUser: (state) => state.userInfo
  };
  
  export default {
    namespaced: true, // 开启命名空间
    state,
    mutations,
    actions,
    getters
  };